Conventionally, a network is abstracted into higher levels of abstraction in order to simplify the complexities of the underlying physical network. The abstraction is commonly viewed as an overlay on the physical network. Moreover, the abstraction is often referred to as a topology or logical map of the network. The map includes nodes representing physical (e.g., servers) or logical (e.g., applications) resources of the network. The map also includes links representing physical (e.g., media channels) or logical (e.g., protocols) communications between the nodes. A path from an entry or ingress node to one or more destination or egress nodes can be defined within the map by connecting nodes and links in an ordered manner. The nodes and links can also include costs that are determined by policies for the network. Thus, a path from an ingress node to an egress node can have an associated cost. The policies can include a variety of metrics or attributes for each of the links and nodes, such as bandwidth available, geographic distance, media transmission channel, and the like.
Once the nodes, links, and policies are known, spanning tree algorithms can be used to generate trees with the topology. The results of these algorithms produce paths within the network for routing data. These paths can be depicted within routing tables that are consumed by network routing devices and applications when routing the data through the network as data needed to pick a reasonable alternative is gathered.
Typical routing tables include a single path through a network for routing data, and should a failure occur alternative paths are dynamically generated by the hardware and software associated with a network device or application that unsuccessfully attempted to route a data packet via a failed link or node. Dynamically determining an alternative path within a routing table is fraught with problems, because, among other reasons, it unduly taxes the routing links and nodes of the network.
However, recently beneficial improvements have been made to these conventional approaches such that when a routing table is initially generated for a network, the routing table already includes a desired path and one or more alternative paths to use if a node or link failure occurs while routing data packets through the network. Such a beneficial improvement is described in U.S. Patent Application entitled “Enriched Tree for a Content Distribution Network,” identified by Ser. No. of 10/285,271 and commonly assigned to Novell, Inc. of Provo, Utah.
With the teachings of the “Enriched Tree for a Content Distribution Network” invention, selective and optimal dynamic routing within a routing table can more efficiently be implemented. Rather than using typical techniques to dynamically generate from scratch alternative paths in the event of a failure, the alternative paths pre-exist in the routing tables of the “Enriched Tree for a Content Distribution Network” invention.
Yet, in some instances, based on current processing conditions of the links and nodes associated with a path, it can be advantageous to dynamically alter or redirect data packets to some predefined alternative paths on a local basis, in order to optimally use the network. For example, some links or nodes can be over utilized or underutilized at any particular point in time when a data packet is being routed. In these instances, it is desirable to selectively redirect the data packet to an alternative local link or node that may be currently underutilized. With improvements made to the “Enriched Tree for a Content Distribution Network” invention, such a circumstance can be realized for selectively and dynamically routing data packets through a network.
Thus, there is a need for providing selective dynamic routing of data packets through enriched routing tables for a network.